package com.functionAnnotation;

import com.classAnnotation.User;
import com.classAnnotation.UserComponent;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 23735
 * Date: 2023-02-07
 * Time: 21:46
 */

/**
 * 方法注解
 */
@Component
public class UserBean {

//    @Bean 需要结合五大类注解 才能使用, 将方法返回的类 注册到 spring 中
//    相当于给 注册的类 换取多个名字, 因为直接用方法获取有各种不便
//    但取过名字之后不能再用方法名获取类了
//    name={} 可以省略 直接 "u1","bean1"
    @Bean (name={"u1", "bean1"})
    public User getUser1(){
        User user=new User();
        user.setId(1);
        user.setName("张三1");
        return user;
    }


    // 作用域 修改为  原型作用域(多例作用域)  bean 总共有 6 种作用域
    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    @Bean
    public User getUser2(){
        User user=new User();
        user.setId(2);
        user.setName("张三2");
        return user;
    }
}
